package com.shengzai

import scala.io.Source

object Code35implicit {
  def main(args: Array[String]): Unit = {
//    3.隐式转换类
    val path:String = "hadoop_code/data/mr/students.txt"
    println(path.readData())

    // 体现了Scala语言的简洁性
    "hadoop_code/data/mr/students.txt".readData()

  }
  // 在类定义时，将class前面添加一个 implicit 标记，之后对于所有的String类型的变量都可以使用
  //      类中定义的函数
  //  当前构造函数中的参数类型决定了，对哪些类型的变量添加对应的函数，并且构造函数中只能存在一个变量类型
  //  需要注意：当前class的作用域 为Object中 所以定义时，需要在Object中进行定义
  implicit class GetData(path: String) {
    def readData(): List[String] = {
      Source
        .fromFile(path)
        .getLines()
        .toList
    }

  }
}


